package com.xmut.mall.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xmut.mall.order.searchparam.AfterSaleSearchParams;
import com.xmut.mall.order.to.*;
import com.xmut.mall.order.utils.PageUtils;
import com.xmut.mall.order.entity.AfterSaleEntity;
import com.xmut.mall.order.utils.RespBean;
import com.xmut.mall.order.vo.PageVO;

import java.util.Map;

public interface AfterSaleService extends IService<AfterSaleEntity> {


    /**
     * 获取售后信息
     * @param params
     * @return
     */
    RespBean getAfterSaleInfo(Map<String, Object> params);

    /**
     * 申请售后信息
     * @param dto
     * @return
     */
    RespBean applyAfterSale(AfterSaleDTO dto);

    /**
     * 获取售后数据的分页信息
     * @param vo
     * @param params
     * @return
     */
    RespBean getAfterSalePage(PageVO vo, AfterSaleSearchParams params);

    /**
     * 根据售后的sn号码获取售后的详情信息
     * @param sn
     * @return
     */
    RespBean getAfterSaleDetail(String sn);

    /**
     * 获取商家售后收件地址
     * @param sn
     * @return
     */
    RespBean getStoreAfterSaleAddress(String sn);

    /**
     * 审核售后申请
     * @param dto
     * @return
     */
    RespBean review(SellerAfterSaleReviewDto dto);

    /**
     * 卖家 退货 物流接口
     * @param dto
     * @return
     */
    RespBean BuyerDelivery(BuyerDeliveryDto dto);

    /**
     * 获取售后退货商品的售后物流信息
     * @param sn
     * @return
     */
    RespBean getAfterSaleTraces(String sn);

    /**
     * 取消售后
     * @param dto
     * @return
     */
    RespBean cancel(CancelAfterSaleDto dto);

    /**
     * 卖家确认收货
     * @param dto
     * @return
     */
    RespBean confirm(SellerAfterSaleConfirmDto dto);

    /**
     * 获取售后物流信息
     * @param sn
     * @return
     */
    RespBean getAfterSaleDeliveryTraces(String sn);
}

